-- Network Working Group Editors of this version:
-- Request for Comments: 2578 K. McCloghrie
-- STD: 58 Cisco Systems
-- Obsoletes: 1902 D. Perkins
-- Category: Standards Track SNMPinfo
-- J. Schoenwaelder
-- TU Braunschweig
-- Authors of previous version:
-- J. Case
-- SNMP Research
-- K. McCloghrie
-- Cisco Systems
-- M. Rose
-- First Virtual Holdings
-- S. Waldbusser
-- International Network Services
-- April 1999-- Structure of Management Information Version 2 (SMIv2)
SNMPv2-SMI DEFINITIONS::=BEGIN-- the path to the rootorg OBJECTIDENTIFIER::={ iso 3}-- "iso" = 1dod OBJECTIDENTIFIER::={ org 6}internet OBJECTIDENTIFIER::={ dod 1}directory OBJECTIDENTIFIER::={ internet 1}mgmt OBJECTIDENTIFIER::={ internet 2}
mib-2 OBJECTIDENTIFIER::={ mgmt 1}transmission OBJECTIDENTIFIER::={ mib-2 10}experimental OBJECTIDENTIFIER::={ internet 3}private OBJECTIDENTIFIER::={ internet 4}enterprises OBJECTIDENTIFIER::={ private 1}security OBJECTIDENTIFIER::={ internet 5}
snmpV2 OBJECTIDENTIFIER::={ internet 6}-- transport domainssnmpDomains OBJECTIDENTIFIER::={ snmpV2 1}-- transport proxiessnmpProxys OBJECTIDENTIFIER::={ snmpV2 2}-- module identitiessnmpModules OBJECTIDENTIFIER::={ snmpV2 3}-- Extended UTCTime, to allow dates with four-digit years
-- (Note that this definition of ExtUTCTime is not to be IMPORTed
-- by MIB modules.)ExtUTCTime ::=OCTETSTRING(SIZE(11 | 13))
-- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ-- where: YY - last two digits of year (only years-- between 1900-1999)-- YYYY - last four digits of the year (any year)-- MM - month (01 through 12)-- DD - day of month (01 through 31)-- HH - hours (00 through 23)-- MM - minutes (00 through 59)-- Z - denotes GMT (the ASCII character Z)---- For example, "9502192015Z" and "199502192015Z" represent-- 8:15pm GMT on 19 February 1995. Years after 1999 must use-- the four digit year format. Years 1900-1999 may use the-- two or four digit format.-- definitions for information modules
MODULE-IDENTITYMACRO::=BEGINTYPENOTATION::="LAST-UPDATED" value(Update ExtUTCTime)"ORGANIZATION" Text
"CONTACT-INFO" Text
"DESCRIPTION" Text
RevisionPart
VALUENOTATION::=
value(VALUEOBJECTIDENTIFIER)
RevisionPart ::=
Revisions
| empty
Revisions ::=
Revision
| Revisions Revision
Revision ::="REVISION" value(Update ExtUTCTime)"DESCRIPTION" Text
-- a character string as defined in section 3.1.1
Text ::= value(IA5String)ENDOBJECT-IDENTITYMACRO::=BEGINTYPENOTATION::="STATUS" Status
"DESCRIPTION" Text
ReferPart
VALUENOTATION::=
value(VALUEOBJECTIDENTIFIER)
Status ::="current"
| "deprecated"
| "obsolete"
ReferPart ::="REFERENCE" Text
| empty
-- a character string as defined in section 3.1.1
Text ::= value(IA5String)END-- names of objects
-- (Note that these definitions of ObjectName and NotificationName
-- are not to be IMPORTed by MIB modules.)
ObjectName ::=OBJECTIDENTIFIER
NotificationName ::=OBJECTIDENTIFIER-- syntax of objects-- the "base types" defined here are:
-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
-- 8 application-defined types: Integer32, IpAddress, Counter32,
-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
ObjectSyntax ::=CHOICE{
simple
SimpleSyntax,-- note that SEQUENCEs for conceptual tables and-- rows are not mentioned here...
application-wide
ApplicationSyntax
}-- built-in ASN.1 types
SimpleSyntax ::=CHOICE{-- INTEGERs with a more restrictive range-- may also be used
integer-value -- includes Integer32INTEGER(-2147483648..2147483647),-- OCTET STRINGs with a more restrictive size-- may also be used
string-value
OCTETSTRING(SIZE(0..65535)),
objectID-value
OBJECTIDENTIFIER}-- indistinguishable from INTEGER, but never needs more than
-- 32-bits for a two's complement representationInteger32::=INTEGER(-2147483648..2147483647)-- application-wide types
ApplicationSyntax ::=CHOICE{
ipAddress-value
IpAddress,
counter-value
Counter32,
timeticks-value
TimeTicks,
arbitrary-value
Opaque,
big-counter-value
Counter64,
unsigned-integer-value -- includes Gauge32Unsigned32}-- in network-byte order-- (this is a tagged type for historical reasons)
IpAddress::=
[APPLICATION0]
IMPLICITOCTETSTRING(SIZE(4))-- this wrapsCounter32::=
[APPLICATION1]
IMPLICITINTEGER(0..4294967295)-- this doesn't wrapGauge32::=
[APPLICATION2]
IMPLICITINTEGER(0..4294967295)-- an unsigned 32-bit quantity
-- indistinguishable from Gauge32
Unsigned32::=
[APPLICATION2]
IMPLICITINTEGER(0..4294967295)-- hundredths of seconds since an epochTimeTicks::=
[APPLICATION3]
IMPLICITINTEGER(0..4294967295)-- for backward-compatibility onlyOpaque::=
[APPLICATION4]
IMPLICITOCTETSTRING-- for counters that wrap in less than one hour with only 32 bitsCounter64::=
[APPLICATION6]
IMPLICITINTEGER(0..18446744073709551615)-- definition for objectsOBJECT-TYPEMACRO::=BEGINTYPENOTATION::="SYNTAX" Syntax
UnitsPart
"MAX-ACCESS" Access
"STATUS" Status
"DESCRIPTION" Text
ReferPart
IndexPart
DefValPart
VALUENOTATION::=
value(VALUE ObjectName)
Syntax ::=-- Must be one of the following:
-- a base type (or its refinement),-- a textual convention (or its refinement), or-- a BITS pseudo-type
type
| "BITS""{" NamedBits "}"
NamedBits ::= NamedBit
| NamedBits "," NamedBit
NamedBit ::= identifier "(" number ")"-- number is nonnegative
UnitsPart ::="UNITS" Text
| empty
Access ::="not-accessible"
| "accessible-for-notify"
| "read-only"
| "read-write"
| "read-create"
Status ::="current"
| "deprecated"
| "obsolete"
ReferPart ::="REFERENCE" Text
| empty
IndexPart ::="INDEX""{" IndexTypes "}"
| "AUGMENTS""{" Entry "}"
| empty
IndexTypes ::=
IndexType
| IndexTypes "," IndexType
IndexType ::="IMPLIED" Index
| Index
Index ::=-- use the SYNTAX value of the-- correspondent OBJECT-TYPE invocation
value(ObjectName)
Entry ::=-- use the INDEX value of the-- correspondent OBJECT-TYPE invocation
value(ObjectName)
DefValPart ::="DEFVAL""{" Defvalue "}"
| empty
Defvalue ::=-- must be valid for the type specified in-- SYNTAX clause of same OBJECT-TYPE macro
value(ObjectSyntax)
| "{" BitsValue "}"
BitsValue ::= BitNames
| empty
BitNames ::= BitName
| BitNames "," BitName
BitName ::= identifier
-- a character string as defined in section 3.1.1
Text ::= value(IA5String)END-- definitions for notificationsNOTIFICATION-TYPEMACRO::=
BEGINTYPENOTATION::=
ObjectsPart
"STATUS" Status
"DESCRIPTION" Text
ReferPart
VALUENOTATION::=
value(VALUE NotificationName)
ObjectsPart ::="OBJECTS""{" Objects "}"
| empty
Objects ::=
Object
| Objects "," Object
Object ::=
value(ObjectName)
Status ::="current"
| "deprecated"
| "obsolete"
ReferPart ::=
"REFERENCE" Text
| empty
-- a character string as defined in section 3.1.1
Text ::= value(IA5String)END-- definitions of administrative identifierszeroDotZero OBJECT-IDENTITYSTATUScurrentDESCRIPTION"A value used for null identifiers."::={00}END